Magnetic stripe cards, such as credit cards and the such, have data encoded thereon in a plurality of tracks along a magnetic strip. Each of these cards contains one, two or three tracks, each track having a different purpose. Typically, the first and third tracks will have 210 bits per inch, and track two has 75 bits per inch. Each of these has a different information content. This information is stored as digital “1's” and “0's” with the use of magnetic flux transitions. Therefore, there will be a plurality of positive transitions followed by negative transitions. A “0” is defined by the largest distance between two transitions, whereas a “1” is defined as an additional magnetic flux transition disposed there between. The magnetic heads detect these magnetic flux transitions and provide an output signal in response to passing the magnetic strip thereby.
The detection of the magnetic flux transitions requires an asynchronous system, since the card can be swiped at many different speeds. In addition, although there are provided many different speeds, the speed can even change during a single swipe. Thus, it is necessary to have a system that will detect these pulses, recover the clock therefrom and then detect whether the transitions represent a “0” or a “1.”
In order to provide a complete solution in the form of a compact magnetic stripe reader, it is necessary to provide within the package data extraction and processing. The data extraction merely requires that the digital string be extracted therefrom and provided as an output. Additionally, this digital string can be decoded so the encoded information therein is output therefrom. Prior are systems have utilized a programmable amplifier for amplifying the signal which is then input to comparators. Typically, there is some type of CPU that is associated therewith and a serial port interface such as a UART.